A Symbolic Simulation Approach to Assertional Program Verification
نویسندگان
چکیده
We present a method for automating deductive proofs of machine-level sequential programs modeled using operational semantics. Given programs annotated by the user with assertions at cutpoints, we show how to use the operational semantics of the machine to derive the verification conditions by symbolic simulation. No verification condition generator is required, nor is it necessary to manually specify an inductive invariant for the machine model. Both partial and total correctness are considered. The methodology has been formalized in both the ACL2 and Isabelle theorem provers, and applied to verify programs on operational machine models in ACL2.
منابع مشابه
Towards more Dependable Verification of Mixed-Signal Systems
The verification of complex mixed-signal systems is a challenge, especially considering the impact of parameter variations. Besides the established approaches like Monte-Carlo or Corner-Case simulation, a novel semi-symbolic approach emerged in recent years. In this approach, parameter variations and tolerances are maintained as symbolic ranges during numerical simulation runs by using affine a...
متن کاملAccurate Theorem Proving for Program Verification
Symbolic software verification engines such as Slam and ESC/Java often use automatic theorem provers to implement forms of symbolic simulation. The theorem provers that are used, such as Simplify, usually combine decision procedures for the theories of uninterpreted functions, linear arithmetic, and sometimes bit vectors using techniques proposed by Nelson-Oppen or Shostak. Programming language...
متن کاملModular Verification of Recursive Programs
We argue that verification of recursive programs by means of the assertional method of C.A.R. Hoare can be conceptually simplified using a modular reasoning. In this approach some properties of the program are established first and subsequently used to establish other program properties. We illustrate this approach by providing a modular correctness proof of the Quicksort program.
متن کاملUsing Operational Intuition about Events and Causality in Assertional Proofs
There are two approaches to reasoning about distributed algorithms. In the operational approach, one reasons \dynamically" about the events that can occur and the temporal precedence relation (called causality) between those events. In the assertional approach, one reasons \statically" about reachable states by means of assertions (called invariants) that are true for all reachable states. The ...
متن کاملModel Checking MSVL Programs Based on Dynamic Symbolic Execution
In this paper, we propose a DSE based model checking approach (DSE-MC) for verifying programs written in Modelling, Simulation and Verification Language (MSVL) [1,3]. For doing so, we adopt a DSE method to execute an MSVL program to generate a symbolic execution tree (SEtree) which is used as the abstract model of the program. Further, a property to be verified is specified by a Propositional P...
متن کامل